/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Entities;

import java.io.Serializable;
import java.util.Collection;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

/**
 *
 * @author Cristian
 */
@Entity
@Table(name = "scrvtbrevista")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Scrvtbrevista.findAll", query = "SELECT s FROM Scrvtbrevista s"),
    @NamedQuery(name = "Scrvtbrevista.findByScrvtbrevistaid", query = "SELECT s FROM Scrvtbrevista s WHERE s.scrvtbrevistaid = :scrvtbrevistaid"),
    @NamedQuery(name = "Scrvtbrevista.findByNombre", query = "SELECT s FROM Scrvtbrevista s WHERE s.nombre = :nombre"),
    @NamedQuery(name = "Scrvtbrevista.findByVolumen", query = "SELECT s FROM Scrvtbrevista s WHERE s.volumen = :volumen"),
    @NamedQuery(name = "Scrvtbrevista.findByIssn", query = "SELECT s FROM Scrvtbrevista s WHERE s.issn = :issn"),
    @NamedQuery(name = "Scrvtbrevista.findByFechapublicacion", query = "SELECT s FROM Scrvtbrevista s WHERE s.fechapublicacion = :fechapublicacion"),
    @NamedQuery(name = "Scrvtbrevista.findByYearpublicacion", query = "SELECT s FROM Scrvtbrevista s WHERE s.yearpublicacion = :yearpublicacion"),
    @NamedQuery(name = "Scrvtbrevista.findByNombrearchivo", query = "SELECT s FROM Scrvtbrevista s WHERE s.nombrearchivo = :nombrearchivo"),
    @NamedQuery(name = "Scrvtbrevista.findByIsiweb", query = "SELECT s FROM Scrvtbrevista s WHERE s.isiweb = :isiweb"),
    @NamedQuery(name = "Scrvtbrevista.findByScimago", query = "SELECT s FROM Scrvtbrevista s WHERE s.scimago = :scimago"),
    @NamedQuery(name = "Scrvtbrevista.findByLatindex", query = "SELECT s FROM Scrvtbrevista s WHERE s.latindex = :latindex"),
    @NamedQuery(name = "Scrvtbrevista.findByCongsemin", query = "SELECT s FROM Scrvtbrevista s WHERE s.congsemin = :congsemin"),
    @NamedQuery(name = "Scrvtbrevista.findByProcesolatindex", query = "SELECT s FROM Scrvtbrevista s WHERE s.procesolatindex = :procesolatindex"),
    @NamedQuery(name = "Scrvtbrevista.findByFechaRegistro", query = "SELECT s FROM Scrvtbrevista s WHERE s.fechaRegistro = :fechaRegistro"),
    @NamedQuery(name = "Scrvtbrevista.findByObservaciones", query = "SELECT s FROM Scrvtbrevista s WHERE s.observaciones = :observaciones")})
public class Scrvtbrevista implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "scrvtbrevistaid")
    private Integer scrvtbrevistaid;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 200)
    @Column(name = "nombre")
    private String nombre;
    @Basic(optional = false)
    @NotNull
    @Column(name = "volumen")
    private int volumen;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 30)
    @Column(name = "issn")
    private String issn;
    @Basic(optional = false)
    @NotNull
    @Column(name = "fechapublicacion")
    @Temporal(TemporalType.DATE)
    private Date fechapublicacion;
    @Basic(optional = false)
    @NotNull
    @Column(name = "yearpublicacion")
    private int yearpublicacion;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 50)
    @Column(name = "nombrearchivo")
    private String nombrearchivo;
    @Basic(optional = false)
    @NotNull
    @Column(name = "isiweb")
    private boolean isiweb;
    @Basic(optional = false)
    @NotNull
    @Column(name = "scimago")
    private boolean scimago;
    @Basic(optional = false)
    @NotNull
    @Column(name = "latindex")
    private boolean latindex;
    @Basic(optional = false)
    @NotNull
    @Column(name = "congsemin")
    private boolean congsemin;
    @Basic(optional = false)
    @NotNull
    @Column(name = "procesolatindex")
    private boolean procesolatindex;
    @Basic(optional = false)
    @NotNull
    @Column(name = "fecha_registro")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaRegistro;
    @Size(max = 255)
    @Column(name = "observaciones")
    private String observaciones;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "scrvtbrevistaid")
    private Collection<Scrvtbrepubrev> scrvtbrepubrevCollection;
    @JoinColumn(name = "scintborganismid", referencedColumnName = "scintborganismid")
    @ManyToOne(optional = false)
    private Scintborganism scintborganismid;

    public Scrvtbrevista() {
    }

    public Scrvtbrevista(Integer scrvtbrevistaid) {
        this.scrvtbrevistaid = scrvtbrevistaid;
    }

    public Scrvtbrevista(Integer scrvtbrevistaid, String nombre, int volumen, String issn, Date fechapublicacion, int yearpublicacion, String nombrearchivo, boolean isiweb, boolean scimago, boolean latindex, boolean congsemin, boolean procesolatindex, Date fechaRegistro) {
        this.scrvtbrevistaid = scrvtbrevistaid;
        this.nombre = nombre;
        this.volumen = volumen;
        this.issn = issn;
        this.fechapublicacion = fechapublicacion;
        this.yearpublicacion = yearpublicacion;
        this.nombrearchivo = nombrearchivo;
        this.isiweb = isiweb;
        this.scimago = scimago;
        this.latindex = latindex;
        this.congsemin = congsemin;
        this.procesolatindex = procesolatindex;
        this.fechaRegistro = fechaRegistro;
    }

    public Integer getScrvtbrevistaid() {
        return scrvtbrevistaid;
    }

    public void setScrvtbrevistaid(Integer scrvtbrevistaid) {
        this.scrvtbrevistaid = scrvtbrevistaid;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public int getVolumen() {
        return volumen;
    }

    public void setVolumen(int volumen) {
        this.volumen = volumen;
    }

    public String getIssn() {
        return issn;
    }

    public void setIssn(String issn) {
        this.issn = issn;
    }

    public Date getFechapublicacion() {
        return fechapublicacion;
    }

    public void setFechapublicacion(Date fechapublicacion) {
        this.fechapublicacion = fechapublicacion;
    }

    public int getYearpublicacion() {
        return yearpublicacion;
    }

    public void setYearpublicacion(int yearpublicacion) {
        this.yearpublicacion = yearpublicacion;
    }

    public String getNombrearchivo() {
        return nombrearchivo;
    }

    public void setNombrearchivo(String nombrearchivo) {
        this.nombrearchivo = nombrearchivo;
    }

    public boolean getIsiweb() {
        return isiweb;
    }

    public void setIsiweb(boolean isiweb) {
        this.isiweb = isiweb;
    }

    public boolean getScimago() {
        return scimago;
    }

    public void setScimago(boolean scimago) {
        this.scimago = scimago;
    }

    public boolean getLatindex() {
        return latindex;
    }

    public void setLatindex(boolean latindex) {
        this.latindex = latindex;
    }

    public boolean getCongsemin() {
        return congsemin;
    }

    public void setCongsemin(boolean congsemin) {
        this.congsemin = congsemin;
    }

    public boolean getProcesolatindex() {
        return procesolatindex;
    }

    public void setProcesolatindex(boolean procesolatindex) {
        this.procesolatindex = procesolatindex;
    }

    public Date getFechaRegistro() {
        return fechaRegistro;
    }

    public void setFechaRegistro(Date fechaRegistro) {
        this.fechaRegistro = fechaRegistro;
    }

    public String getObservaciones() {
        return observaciones;
    }

    public void setObservaciones(String observaciones) {
        this.observaciones = observaciones;
    }

    @XmlTransient
    public Collection<Scrvtbrepubrev> getScrvtbrepubrevCollection() {
        return scrvtbrepubrevCollection;
    }

    public void setScrvtbrepubrevCollection(Collection<Scrvtbrepubrev> scrvtbrepubrevCollection) {
        this.scrvtbrepubrevCollection = scrvtbrepubrevCollection;
    }

    public Scintborganism getScintborganismid() {
        return scintborganismid;
    }

    public void setScintborganismid(Scintborganism scintborganismid) {
        this.scintborganismid = scintborganismid;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (scrvtbrevistaid != null ? scrvtbrevistaid.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Scrvtbrevista)) {
            return false;
        }
        Scrvtbrevista other = (Scrvtbrevista) object;
        if ((this.scrvtbrevistaid == null && other.scrvtbrevistaid != null) || (this.scrvtbrevistaid != null && !this.scrvtbrevistaid.equals(other.scrvtbrevistaid))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "Entities.Scrvtbrevista[ scrvtbrevistaid=" + scrvtbrevistaid + " ]";
    }
    
}
